package NowCoder.DynamicPlanning;

import java.util.Scanner;

/**
 * HJ91 走方格的方案数
 * 简单  通过率：49.44%  时间限制：1秒  空间限制：32M
 * 知识点 动态规划 基础数学
 * warning 校招时部分企业笔试将禁止编程题跳出页面，为提前适应，练习时请使用在线自测，而非本地IDE。
 * 描述
 * 请计算n*m的棋盘格子（n为横向的格子数，m为竖向的格子数）从棋盘左上角出发沿着边缘线从左上角走到右下角，总共有多少种走法，要求不能走回头路，
 * 即：只能往右和往下走，不能往左和往上走。
 *
 * 注：沿棋盘格之间的边缘线行走
 *
 * 数据范围：
 * 1 ≤ n ,m ≤ 8
 * 输入描述：
 * 输入两个正整数n和m，用空格隔开。(1≤n,m≤8)
 *
 * 输出描述：
 * 输出一行结果
 *
 * 示例1
 * 输入：
 * 2 2
 * 输出：
 * 6
 * https://www.nowcoder.com/practice/e2a22f0305eb4f2f9846e7d644dba09b?tpId=37&tqId=21314&ru=/exam/oj
 */
public class 走方格的方案数_HJ91 {
    //TODO:请重新写这道题
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);

        while(scanner.hasNext()){
            int n = scanner.nextInt();
            int m = scanner.nextInt();

            System.out.println(schemesNumber(n , m));
        }
    }

    public static int schemesNumber(int n,int m){
        if(n == 1 || m == 1){
            return m + n;
        }
        return schemesNumber(n - 1, m) + schemesNumber(n , m - 1);
    }
}
